The present invention is related to the field of communications network devices, and more particularly to network devices performing frame forwarding in communications networks.
Network devices in communications networks commonly carry out two related functions. One is frame forwarding, by which frames received at a given port are forwarded to one or more other ports for transmission toward their destination. Forwarding is typically carried out using “forwarding tables” existing at each port. The other function is address learning, which enables the device to accurately maintain address information in the forwarding tables for use in performing the forwarding function.
The forwarding of unicast frames generally works in the following manner. When a frame is received by the device, the forwarding table at the receiving port, or “ingress port”, is consulted using the destination address (DA) from the frame. If there is an entry in the forwarding table for this address, the frame is forwarded to one other port of the network device as indicated by the entry. Otherwise, the frame is “flooded” to all other ports of the network device, on the assumption that the destination address is reachable via one of the other ports. Flooding is wasteful, however, because all but one of the transmissions from the other ports are unnecessary.
Addresses are learned at ports through “egress learning”. As a frame exits the network device at a given port, the port uses the source address (SA) of the frame and the identity of the ingress port at which the frame was originally received to create or update an entry in its forwarding table. The addresses stored as entries in the forwarding table are compared with the DA of a received frame during the forwarding lookup discussed above. Once an address is “known” at a port, i.e., the port has an entry for the address in its forwarding table, the port need not flood frames containing that address.
Physical ports of a network device may be logically grouped into an “aggregated port” (AP), a single logical connection between the device and external equipment such as a bridge. In general, frames can be transferred between the device and external equipment via any of the physical ports of an aggregated port. Generally, a particular port is selected in some deterministic fashion, such as according to a hash function of a network address in a frame.
When an AP is employed, it is possible that frames being sent from a station attached to the AP that are destined for a station attached to another port of the device are transferred via one physical port of the AP, while frames being sent in the other direction between the two stations are transferred via another physical port of the AP. In this case, egress learning as described above may fail to terminate flooding in a timely manner. This happens because the ports use different forwarding tables, and the forwarding table used for forwarding frames in the one direction is not updated with the address information from frames flowing in the other direction. Thus, frames continue to be flooded in a wasteful manner, despite the existence of information at another port of the device that could be used to terminate the flooding.